// 用于在不修改组件的情况下配置某些组件的常规配置

import type { SorterResult } from '../components/Table';

export default {
  // 表格基本设置
  table: {
    // 表单接口请求常规配置
    // support xxx.xxx.xxx
    fetchSetting: {
      // 传递到后台的当前页面的字段名
      pageField: 'page',
      // 背景中显示的每页的数字字段名称
      sizeField: 'pageSize',
      // 接口返回的表单数据的字段名
      listField: 'items',
      // 接口字段名返回的表总数
      totalField: 'total',
    },
    // 可选择的每页记录数
    pageSizeOptions: ['10', '50', '80', '100'],
    // 一页上的默认显示数量
    defaultPageSize: 10,
    // 默认大小
    defaultSize: 'middle',
    // 自定义通用排序函数
    defaultSortFn: (sortInfo: SorterResult) => {
      const { field, order } = sortInfo;
      if (field && order) {
        return {
          // 将排序字段传递给您选择的后端
          field,
          // 传递给后台asc/desc的排序方法
          order,
        };
      } else {
        return {};
      }
    },
    // 自定义通用筛选函数
    defaultFilterFn: (data: Partial<Recordable<string[]>>) => {
      return data;
    },
  },
  vxeTable: {
    table: {
      border: true,
      stripe: true,
      columnConfig: {
        resizable: true,
        isCurrent: true,
        isHover: true,
      },
      rowConfig: {
        isCurrent: true,
        isHover: true,
      },
      emptyRender: {
        name: 'AEmpty',
      },
      printConfig: {},
      exportConfig: {},
      customConfig: {
        storage: true,
      },
    },
    grid: {
      toolbarConfig: {
        enabled: true,
        export: true,
        zoom: true,
        print: true,
        refresh: true,
        custom: true,
      },
      pagerConfig: {
        pageSizes: [20, 50, 100, 500],
        pageSize: 20,
        autoHidden: true,
      },
      proxyConfig: {
        form: true,
        props: {
          result: 'items',
          total: 'total',
        },
      },
      zoomConfig: {},
    },
  },
  // scrollbar setting
  scrollbar: {
    // 是否使用本机滚动条
    // 打开后，菜单、模式、抽屉将弹出滚动条更改为本机
    native: false,
  },
};
